package cn.wolfcode.luowowo.acticle.service;


import cn.wolfcode.luowowo.acticle.domain.StrategyDetail;
import cn.wolfcode.luowowo.acticle.query.StrategyDetailQuery;
import cn.wolfcode.luowowo.acticle.vo.StrategyStatisVO;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * 攻略明细服务
 */
public interface IStrategyDetailService {


    /**
     * 分页
     * @param qo
     * @return
     */
    PageInfo query(StrategyDetailQuery qo);

    /**
     * 查单个
     * @param id
     * @return
     */
    StrategyDetail get(Long id);

    /**
     * 更新/添加
     * @param strategyDetail
     * @param tags
     */
    void saveOrUpdate(StrategyDetail strategyDetail, String tags);

    /**
     * 修改状态
     * @param id
     * @param state
     */
    void changeState(Long id, int state);

    /**
     *
     * @param id
     * @return
     */
    String getTags(Long id);

    /**
     * 通过攻略id 查询明细
     * @param strategyId
     * @return
     */
    List<Map<String, Object>> getDetailByStrategyId(Long strategyId);

    /**
     * 通过地区id查询
     * @param id
     * @return
     */
    List<StrategyDetail> queryStrategyDetailByDestId(Long id);



    /**
     * 查所有
     * @return
     */
    List<StrategyDetail> list();


    /**
     * 查询攻略用户id
     * @return
     */
    List<Long> getUserFavorList(Long sid);

    /**
     * 缓存数据落地
     * @param vo
     */
    void updateStatis(StrategyStatisVO vo);

    /**
     * 删除收藏
     * @param id
     */
    void deleteFavor(Long id);

    /**
     * 添加收藏
     * @param sid
     * @param uid
     */
    void insertFavor(Long sid, Long uid);

    /**
     * 通过攻略查询明细
     * @param
     * @return
     */
    List<Map<String, Object>> getDetails();
}
